home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-pip-identifiers-01.txt < prev    next >
Text File  |  1993-03-03  |  18KB  |  518 lines

  1.  
  2.  
  3.  
  4.  
  5. Network Working Group                                        P. Tsuchiya
  6. INTERNET-DRAFT                                                  Bellcore
  7.                                                             January 1993
  8.  
  9.  
  10.                             Pip Identifiers
  11.  
  12.  
  13. Status of this Memo
  14.  
  15.    This document is an Internet Draft.  Internet Drafts are working
  16.    documents of the Internet Engineering Task Force (IETF), its Areas,
  17.    and its Working Groups. Note that other groups may also distribute
  18.    working documents as Internet Drafts).
  19.  
  20.    Internet Drafts are draft documents valid for a maximum of six
  21.    months. Internet Drafts may be updated, replaced, or obsoleted by
  22.    other documents at any time.  It is not appropriate to use Internet
  23.    Drafts as reference material or to cite them other than as a "working
  24.    draft" or "work in progress."
  25.  
  26.    Please check the I-D abstract listing contained in each Internet
  27.    Draft directory to learn the current status of this or any other
  28.    Internet Draft.
  29.  
  30.  
  31. Abstract
  32.  
  33.    Pip is an internet protocol intended as the replacement for IP
  34.    version 4.  The Pip header defines source and destination ID fields
  35.    whose primary function it is to identify the source and destination
  36.    of a Pip packet.  While Pip systems treat the IDs as flat for the
  37.    purpose of identification, it is useful to have hierarchical
  38.    structure in the ID for other purposes, such as for doing a reverse
  39.    DNS lookup on the ID.  This internet-draft defines the structure of
  40.    Pip IDs.
  41.  
  42.  
  43. Acknowledgements
  44.  
  45.    I want to thank John Curren and Bob Smart for their observations on
  46.    the need for administrative structure in Pip IDs that led to this
  47.    draft.
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Pip WG, Expires July 1, 1993                                    [Page 1]
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. INTERNET-DRAFT              Pip Identifiers                 January 1993
  61.  
  62.  
  63. 1.  Changes From Previous Version
  64.  
  65.  
  66.    The major change to this version is in how IP addresses are encoded
  67.    in the Pip ID.  Whereas before they were encoded in the ASN.1 nota-
  68.    tion (and thus spread over 5 octets), now they are always encoded in
  69.    the low-order 32 bits of the Pip ID.
  70.  
  71.    In addition, code points were added for E.164 numbers, and for form-
  72.    ing Pip IDs that are only locally unique (for the sake of auto-
  73.    configuration).
  74.  
  75.  
  76.  
  77. 2.  Introduction
  78.  
  79.  
  80.    Pip is an internet protocol intended as the replacement for IP ver-
  81.    sion 4.  The Pip header defines source and destination ID fields
  82.    whose function, in the context of host processing of Pip headers, is
  83.    to only identify the source and destination of a Pip packet.  While
  84.    Pip systems treat the IDs as flat for the purpose of identification,
  85.    it is useful to have hierarchical structure in the ID for other pur-
  86.    poses, such as for doing a reverse DNS lookup on the ID.  This
  87.    internet-draft defines the structure of Pip IDs.
  88.  
  89.    Pip IDs have the following characteristics:
  90.  
  91.    1.   With well-known exceptions, they are globally unique binary
  92.         strings 8 octets in length.
  93.  
  94.    2.   They are hierarchically structured.
  95.  
  96.    3.   Each component of the hierarchy is contiguous, and each
  97.         hierarchical component is positioned in the Pip ID adjacent to
  98.         its parent and child components.
  99.  
  100.    4.   The hierarchical structure is self-describing.  That is, the
  101.         hierarchical structure can be determined by examination of the
  102.         ID alone.
  103.  
  104.    5.   Pip IDs may be used for group identification, but such a Pip ID
  105.         is not self-describing as being a group Pip ID.
  106.  
  107.    6.   Certain Pip IDs are well-known and have local meaning, such as
  108.  
  109.  
  110.  
  111. Pip WG, Expires July 1, 1993                                    [Page 2]
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. INTERNET-DRAFT              Pip Identifiers                 January 1993
  119.  
  120.  
  121.         "all routers on the subnet" and "this host".
  122.  
  123.    Pip IDs are formed by a hierarchy of number authorities, each of
  124.    which is responsible for assigning the next lower level of the
  125.    hierarchy.  While it is the intent that the hierarchical structure of
  126.    Pip IDs follow administrative hierarchy (versus, for instance, topo-
  127.    logical hierarchy), it is up to each number authority to determine
  128.    how the next level is assigned.
  129.  
  130.    The top-level number authority for Pip IDs is the Internet Assigned
  131.    Number Authority (IANA).
  132.  
  133.  
  134.  
  135. 3.  Pip ID structure
  136.  
  137.  
  138.    Semantically, the Pip ID is a series of integers, with each integer
  139.    being hierarchically above the following one.  For instance, the Pip
  140.    ID 12.96.4993.5 has four levels of hierarchy.  The IANA assigns the
  141.    top-level (12).  The number authority represented by the top-level
  142.    number 12 assigns the following level (96), and so on.
  143.  
  144.    The encoding of a Pip ID is similar to (but not the same as) that of
  145.    the Object Identifier encoding in ASN.1.  That is, it is encoded as a
  146.    series of (eight) octets, with the first bit of each octet indicating
  147.    whether the next octet is part of the same integer or a new integer.
  148.    If the first bit of the octet is 0, then it is the last octet of the
  149.    integer.  If the first bit of the octet is 1, then the following
  150.    octet is part of the same integer.
  151.  
  152.    For instance, the integer 127 is encoded as 01111111.  The integer
  153.    128, however, is encoded as 10000001 00000000.  The leading 1 in the
  154.    first octet indicates that the next octet is part of the same
  155.    integer. The leading 0 is the second octet indicates that it is the
  156.    final octet of the integer.  The value 128 comes from concatinating
  157.    the seven least significant bits from each of the two octets.
  158.  
  159.  
  160. 3.1.  Exceptions to the Above Rule
  161.  
  162.  
  163.    There are three exceptions to the above rule--padding octets, the "IP
  164.    Address Follows" octet, and the low order octet.  These exceptions
  165.    are discussed here.
  166.  
  167.  
  168.  
  169. Pip WG, Expires July 1, 1993                                    [Page 3]
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176. INTERNET-DRAFT              Pip Identifiers                 January 1993
  177.  
  178.  
  179. Padding
  180.  
  181.    In encoded form, all Pip IDs are padded out to the full 8 octets.
  182.    The pad consists of a single octet of value 10000000 followed by 0 or
  183.    more octets of value 11111111.  This is how the Pip ID encoding
  184.    differs from the ASN.1 Object Identifier encoding.  In the ASN.1
  185.    encoding, an octet of 1000 0000 is illegal, because it represents a
  186.    "wasted" octet in the case where the string of octets is variable
  187.    length.
  188.  
  189.    The reason that we do not pad with multiple octets of 10000000 is
  190.    because it would be ambiguous with one of the IP address encodings.
  191.  
  192.    As another example, consider the Pip ID 12.96.4993.5.  It is encoded
  193.    as:
  194.  
  195.    12                00001100
  196.    96                01100000
  197.    4993              10100111 00000001
  198.    5                 00000101
  199.    pad               10000000 11111111 11111111
  200.  
  201.    The 12 and 96 take up one octet each.  The 4993 is greater than 127
  202.    (largest 7-bit integer), but smaller than 16383 (largest 14-bit
  203.    integer), so it requires 2 octets.  The 5 is the final digit.  The
  204.    remaining 3 octets are padded with 10000000 followed by two octets of
  205.    11111111.
  206.  
  207. IP Address Follows
  208.  
  209.    The second exception is for the case of embedding an IP address in
  210.    the Pip ID.  This exception exists because embedding IP addresses in
  211.    Pip IDs is an integral part of transition to Pip, and a router will
  212.    need to extract IP addresses from Pip IDs on a packet by packet
  213.    basis.  If we encode the IP address in the ASN.1 notation, then the
  214.    32-bit IP address gets spread over 40 bits of Pip ID, and a series of
  215.    shift, mask, and OR operations are required to extract the IP address
  216.    in its contiguous 32-bit form.
  217.  
  218.    As a result, we allow the 32-bit IP address to be embedded in the Pip
  219.    ID in its contiguous form.  For the sake of simplicity and effi-
  220.    ciency, we require that the IP address always be in the low order 32
  221.    bits of the Pip ID.  In order that a Pip ID with an IP address be
  222.    self-describing as such, we specify that the octet preceeding the IP
  223.    address be 10000000.  Note that this is also the "start of padding"
  224.  
  225.  
  226.  
  227. Pip WG, Expires July 1, 1993                                    [Page 4]
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234. INTERNET-DRAFT              Pip Identifiers                 January 1993
  235.  
  236.  
  237.    octet.  However, if the remainder of the Pip ID really padding, then
  238.    it is followed by four octets of 11111111.  However, an IP address of
  239.    all 1's is illegal, so 5 octets of padding cannot be mistaken for an
  240.    IP address.
  241.  
  242. Low Order Octet
  243.  
  244.    Except for the case of an IP address, the values 10000001 - 11111110
  245.    in the low order octet do not make sense, because the "1" in the
  246.    indicates "more digits follow" when there are in fact no more digits.
  247.    Thus, the values 10000001 - 11111110 in the low order octet, except
  248.    for the IP address encoding, are illegal.  In the future, these
  249.    values may be used to imply an extension of the Pip ID.
  250.  
  251.  
  252.  
  253. 4.  Assigned Top-level Pip ID Numbers
  254.  
  255.  
  256.    It is expected that the IANA will generally assign top-level Pip ID
  257.    numbers directly to organizations.  This document, however, defines a
  258.    number of special, non-organizational assignments.  These are for the
  259.    purposes of grandfathering existing numbering plans, and for delegat-
  260.    ing countries as second level assignment authorities.
  261.  
  262.    The assignments below consume all of the 1-octet top-level numbers (0
  263.    - 127) and a small number of 2-octet top-level numbers (128 - 316 are
  264.    assigned of a possible maximum 2-octet number of 16383).  Thus there
  265.    are approximately 16,000 2-octet and 2,000,000 3-octet top-level
  266.    numbers available for assignment directly to organizations.
  267.  
  268.    Any of these 2- and 3-octet assignments allow the designated organi-
  269.    zation to form Pip IDs with IP addresses embedded.  Any 4-octet or
  270.    greater assignment does not allow the designated organization to form
  271.    a Pip ID with an embedded IP address (except on an ad hoc basis).
  272.    Thus it is recommended that the IANA assign 2- and 3- octet numbers
  273.    to organizations for the forseeable.  Since 2-octet numbers are at a
  274.    premium, it may be desirable to reserve these numbers and only assign
  275.    3-octet numbers, or to assign 2-octet numbers only to very large
  276.    organizations.
  277.  
  278.    The following Pip ID assignments are defined:
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285. Pip WG, Expires July 1, 1993                                    [Page 5]
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292. INTERNET-DRAFT              Pip Identifiers                 January 1993
  293.  
  294.  
  295. 4.1.  IEEE 802 Address
  296.  
  297.  
  298.    An IEEE 802 address can be used to create a globally unique Pip ID.
  299.    Thus, anybody with an IEEE 802 address can use it to form a globally
  300.    unique Pip ID.
  301.  
  302.    The format for an IEEE 802 Pip ID is:
  303.  
  304.    1.IEEE802address
  305.  
  306.    The top-level integer is value "1".  The remainder of the Pip ID is a
  307.    single IEEE 802 address.  Since the IEEE 802 address is 48 bits in
  308.    length, and since the remaining 7 octets only encode 49 bits, there
  309.    is no room for a third level of hierarchy.
  310.  
  311.  
  312.  
  313. 4.2.  Locally Unique IDs
  314.  
  315.  
  316.    During auto-configuration, it is necessary for a Pip host to be able
  317.    to construct a Pip ID that is with very high probability unique among
  318.    the systems that share a physical network with it.  If the host has
  319.    an IEEE 802 interface, then it can form a Pip ID of the form
  320.    1.IEEE802address as described in the preceeding section.  This Pip ID
  321.    is globally unique.
  322.  
  323.    If, however, the host does not have a globally unique IEEE 802 number
  324.    with which to form a Pip ID, it can use (one of) its physical inter-
  325.    face address(es) to form a Pip ID that is unique for the systems on
  326.    the physical network (presuming that the physical addresses on the
  327.    network are unique among each other).
  328.  
  329.    The format for this number is:
  330.  
  331.    2.physicalAddress.randomNumber
  332.  
  333.    The top-level integer is value "2".  The next level integer is
  334.    created using the physicalAddress.  The lowest level integer is a
  335.    randomly generated number truncated to fit within the space remaining
  336.    after the physical address.  Thus, the Locally Unique Pip ID has
  337.    three levels of hierarchy.
  338.  
  339.    Note that the 2.physicalAddress alone should be sufficient to insure
  340.  
  341.  
  342.  
  343. Pip WG, Expires July 1, 1993                                    [Page 6]
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350. INTERNET-DRAFT              Pip Identifiers                 January 1993
  351.  
  352.  
  353.    uniqueness on the local physical network.  The random number, how-
  354.    ever, increases the probability that the number will be unique on the
  355.    local physical network and beyond.
  356.  
  357.  
  358.  
  359.  
  360.  
  361. 4.3.  CCITT E.164
  362.  
  363.  
  364.    A CCITT E.164 address can be used to create a globally unique Pip ID.
  365.    Thus, anybody with an E.164 address can use it to form a globally
  366.    unique Pip ID.
  367.  
  368.    The format for an IEEE 802 Pip ID is:
  369.  
  370.    3.flatE164number
  371.    4.flatE164number
  372.  
  373.    The top-level integer is value "3" or "4".  The reason that two top-
  374.    level assignments are required for E.164 is because the maximum pos-
  375.    sible E.164 number is 15 digits.  To encode all 15 digit numbers in
  376.    binary requires 50 bits.  Not including the high order octet, how-
  377.    ever, there are only 49 significant bits in the Pip ID.  Thus, we
  378.    must "steal" the low order bit of the high order octet in order to
  379.    insure that all E.164 numbers can be encoded.
  380.  
  381.    The algorithm for creating a Pip ID from an E.164 number is to form
  382.    the single integer flatE164number from the E.164 number (that is, the
  383.    contatination of country code and remaining digits).  If
  384.    flatE164number integer is less than 2^49, then use the top-level
  385.    assignment of 3 followed by flatE164number.  If, on the other hand,
  386.    flatE164number is greater than or equal to 2^49, then subtract 2^49
  387.    from flatE164number and use the top-level assignment of 4 followed by
  388.    the modified flatE164number.
  389.  
  390.    The reverse of this is used to extract an E.164 from a Pip ID with a
  391.    top-level integer of 3 or 4.
  392.  
  393.  
  394.  
  395. 4.4.  Flat Well-Known IDs
  396.  
  397.  
  398.  
  399.  
  400.  
  401. Pip WG, Expires July 1, 1993                                    [Page 7]
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408. INTERNET-DRAFT              Pip Identifiers                 January 1993
  409.  
  410.  
  411.    There are any number of uses for identifying systems of a certain
  412.    type, rather than specific systems.  For instance, an ID for "all
  413.    routers on the LAN" is useful for router discovery.  This specifica-
  414.    tion defines the following well-known Pip IDs.  These well-known Pip
  415.    IDs consist of a single hierarchy level (the top-level), but are so
  416.    large that only one level of hierarchy is possible.
  417.  
  418.       Any Router
  419.            Decimal Notation = 2^56 - 1
  420.            Pip ID encoding  = ff ff ff ff ff ff ff 7f
  421.  
  422.       Any Host
  423.            Decimal Notation = 2^56 - 2
  424.            Pip ID encoding  = ff ff ff ff ff ff ff 7e
  425.  
  426.       Any System
  427.            Decimal Notation = 2^56 - 3
  428.            Pip ID encoding  = ff ff ff ff ff ff ff 7d
  429.  
  430.    The above three well-known Pip IDs serve for functions such as "all
  431.    routers on a subnet", for instance in configuration algorithms such
  432.    as router discovery.  Other well-known Pip IDs are expected to be
  433.    defined in the future.
  434.  
  435.  
  436.  
  437. 4.5.  Country Codes
  438.  
  439.  
  440.    While it is probably adequate to assign top-level Pip ID numbers
  441.    directly to organizations, there may be good reasons to assign them
  442.    to countries.  One reason is that it reduces the administrative bur-
  443.    den on IANA for assigning top-level numbers to every possible organi-
  444.    zation.  Another reason is that the number of organizations in the
  445.    world may be large enough that a layer of hierarchy above the organi-
  446.    zation is needed for such purposes as ID-to-name directory service
  447.    lookups.
  448.  
  449.    Therefore, this specification has reserved a block of numbers for
  450.    country codes.  The actual number values have not yet been assigned.
  451.    A consideration in assigning these numbers is whether the number
  452.    takes up one octet or two octets.  A one octet number leaves more
  453.    room for further assignment, and is therefore more desirable.  How-
  454.    ever, there are enough countries that not all of them can have a
  455.    one-octet top-level number (ISO 3166 lists 235 countries).
  456.  
  457.  
  458.  
  459. Pip WG, Expires July 1, 1993                                    [Page 8]
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. INTERNET-DRAFT              Pip Identifiers                 January 1993
  467.  
  468.  
  469.    A reasonable approach to assigning these numbers, however, would be
  470.    to assign one-octet values to those countries with the largest Gross
  471.    National Produce (GNP) or population.  CCITT assigns 1 or 2-digit
  472.    E.164 country codes to 47 countries (and 3-digit country codes to the
  473.    remaining countries), so it is probably reasonable to give the 47 or
  474.    so countries with the highest GNPs one-octet country codes, and
  475.    assign 2-octet codes to the remaining countries.  (The 8 most popu-
  476.    lous nations are among the 40 nations with highest GNP.)
  477.  
  478.    Therefore, this standard tentatively reserves top-level numbers 80 -
  479.    127 for those countries with the highest GNPs, and 128 - 316 for the
  480.    remaining countries.
  481.  
  482.  
  483.  
  484. 4.6.  CCITT and ISO assignments
  485.  
  486.  
  487.    The following top-level numbers are assigned to CCITT and ISO:
  488.  
  489.         CCITT                   10
  490.         ISO                     11
  491.         Joint CCITT/ISO         12
  492.  
  493.  
  494.  
  495. 5.  Summary of Top-Level Pip ID Numbers
  496.  
  497.  
  498.            0                           Reserved
  499.            1                           IEEE 802
  500.            2                           Locally Unique
  501.            3 and 4                     CCITT E.164
  502.            5 to 9                      Reserved
  503.            10                          CCITT (other than E.164)
  504.            11                          ISO
  505.            12                          Joint CCITT/ISO
  506.            13 to 79                    Reserved
  507.            80 to 316                   Country Codes
  508.            317 to 16383                Reserved 2-octet
  509.            16384 to 2097151            Reserved 3-octet
  510.            2097151 to 2^56 - 4         Reserved other
  511.            2^56 - 3 to 2^56 - 1        Well-known IDs
  512.  
  513.  
  514.  
  515.  
  516.  
  517. Pip WG, Expires July 1, 1993                                    [Page 9]
  518.